1. Field of the Invention
The present invention relates to a method, system, and program for accessing a namespace indicating the location of network devices and objects in a network environment.
2. Description of the Related Art
Network printing systems generally comprise an assemblage of different printers, client computers, servers, and other components connected over a network. A print job is assembled at a client computer and transmitted over the network to a server linked to a variety of printers. To route print jobs through a network printing system, International Business Machines Corporation (IBM) provides Printing Systems Manager (PSM) and InfoPrint products that provide centralized and distributed management of a network printing system.** The PSM and InfoPrint printer manager software manages the flow of print jobs and ensures that a print job is routed to a printer that can handle the job. These printer manager software products manage both printer and queue objects. Queue objects represent queues of print jobs and the printer objects include both logical and physical print objects representing the managed.
**AIX and OS/2 are registered trademarks of IBM; Unix is a registered trademark licensed exclusively by the X/Open Company LTD.; WINDOWS is a registered trademark of Microsoft Corporation; and Linux is a trademark of Linus Torvalds. 
Because printer, queue, and spooler resources are distributed at different resources, a global name repository, referred to as a namespace, provides the mapping of printer objects to servers and from the servers to network IP addresses. The namespace is available to all utilities and API procedures within the network printing system. The namespace allows procedures to access a server in the distributed network environment without having to know the physical location of the server. Thus, a system in the network can share a resource by including it in the namespace. In the IBM PSM server, the namespace is implemented using the Distributed Computing Environment (DCE) Directory Service.
In the current art, the namespace is maintained on a namespace server. DCE provides a name service that administers the namespace and returns mappings of an object name to a namespace object name. Binding is the process by which a network device or procedure determines the location of the object in the network. The namespace provides a mapping of servers to IP addresses and the name of objects and interfaces. The name of objects is in a pathname format, which includes the server name, the type of object, and the name of the object. For instance, a printer object may include the following components in the pathname:
/.../servename/printer/printername
When the client wants to access an object, the client would send a request for the object name over the network to the namespace server to obtain the binding information. This namespace server would return the full object pathname, including the name of the server containing the object. The client would then extract the server name from the object pathname and then send a second request over the network to the namespace server for the IP address of the server including the object. Only after obtaining this binding information by making two calls to the namespace server may the client then establish communication with the server to access the object therein. Further details of the PSM namespace is described in the IBM publication xe2x80x9cAdministrating IBM Printing Systems Manager for AIX Version 1.2.1,xe2x80x9d IBM document no. S544-3964-02 (IBM Copyright, 1996), which publication is incorporated herein by reference in its entirety. Details of the DCE namespace are described in the IBM publication xe2x80x9cAdministrating IBM Printing Systems Manager for AIX Version 1.2.1,xe2x80x9d IBM document no. S544-3964-02 (IBM Copyright, 1996), which publication is incorporated herein by reference in its entirety.
To overcome the limitations in the prior art described above, preferred embodiments disclose a method, system, and program for accessing an object in a network providing communication among multiple network devices and a namespace server including a namespace comprising one network address for each network device in the system. The network device retrieves the namespace from the namespace server over the network and maintains the retrieved namespace as a local namespace at the network device. The network device may then determine the network address of a target network device to use to send a request to the network address of the target network device.
In further embodiments, the namespace includes a plurality of objects and a network device through which the object is capable of being accessed. One network device processes a request to access one of the objects and then locates the requested object in the local namespace. The network device determines from the located object in the local namespace the network device and the network address of the network device through which the object is capable of being accessed. The network device then transmits a request to access the object to the determined network address of the network device through which the object is capable of being accessed
In still further embodiments, a network device may add or delete an object The network device adding or deleting the object would determine from its local namespace the network address of every other network device and then transmit information on the added or deleted object to every other determined network device and the namespace server. The network devices receiving the transmitted information use the information on an added object to determine the location of the added object in the network.
With preferred embodiments network devices do not need to access a separate server including the namespace over the network to determine the network IP address of another network device or object. Preferred embodiments provide a mechanism for making the namespace available locally at each network device and updating the local namespaces so the local namespaces are current and consistent with the central namespace on the namespace server. With the preferred embodiment technique for accessing the namespace, network traffic is reduced significantly because network devices do not need to issue multiple requests to a remote namespace server to determine the location in the network of an object or device. Preferred embodiments improve the scalability of network systems because addition of further network objects and devices does not require corresponding increases in network traffic to determine the location of the added objects and devices in the network.